#include<iostream>
using namespace std;

//hanoi tower
int f(int n)
{
	if ( n==1)
	{
		return 1;
		
	}
	
	else
	{
	return 2*f(n-1)	+ 1;
	
	}
}

void f2(int n,char a,char c, char b)
{
	//a起始点，c目标点，b中间点，n为第n个盘子 
	if (n==1)
    {
		cout<<a<<"->"<<n<<"->"<<c<<endl;
	}
	
	else
	{
	        f2(n-1,'A','C','B');
			cout<<a<<"->"<<n<<"->"<<c<<endl;
			f2(n-1,'B','C','A');
	} 
}

int main()
{
	int n;
	cin>>n;
	cout<<f(n)<<endl;
	f2(n,'a','c','b');
	return 0;
	
} 
